jQuery(function () {
    "use strict";
    var MateriaApp = function () {
        this.isMobile = null, this.navHorizontal = !1, this.fixedHeader = !0, this.themeActive = "theme-zero", this.navFull = !0, this.navOffCanvas = !1, this.mainContainer = $(".main-container"), this.siteHead = $(".site-head"), this.siteSettings = $(".site-settings"), this.app = $(".app"), this.navWrap = $(".nav-wrap"), this.contentContainer = $(".content-container"), this._init()
    };
    MateriaApp.prototype._init = function () {
        this._checkMobile(), this.toggleSiteNav(), this.initDefaultSettings(), this.initRipple(), this.toggleSettingsBox(), this.initPerfectScrollbars(), this.toggleFullScreen(), this.toggleFloatingSidebar(), this.initNavAccordion()
    }, MateriaApp.prototype.initDefaultSettings = function () {
        function onNavHorizontal() {
            this.checked ? (that.navHorizontal = !0, that.mainContainer.addClass("nav-horizontal")) : (that.navHorizontal = !1, that.mainContainer.removeClass("nav-horizontal")), setTimeout(function () {
                sQuery.navHorizontal = that.navHorizontal, statesQuery.put(sQuery)
            })
        }

        function onFixedHeader() {
            this.checked ? (that.fixedHeader = !0, that.siteHead.addClass("fixedHeader"), that.contentContainer.addClass("fixedHeader")) : (that.fixedHeader = !1, that.siteHead.removeClass("fixedHeader"), that.contentContainer.removeClass("fixedHeader")), setTimeout(function () {
                sQuery.fixedHeader = that.fixedHeader, statesQuery.put(sQuery)
            })
        }

        function onThemeChange(e) {
            var $t = $(this), $list = that.siteSettings.find("#themeColor li");
            $list.removeClass("active"), $t.addClass("active"), that.app.removeClass(that.themeActive), that.themeActive = $t.data("theme"), sQuery.themeActive = that.themeActive, statesQuery.put(sQuery), that.app.addClass(that.themeActive), e.preventDefault()
        }

        var that = this, SETTINGS_STATES = "_setting-states", statesQuery = {
            get: function () {
                return JSON.parse(localStorage.getItem(SETTINGS_STATES))
            }, put: function (states) {
                localStorage.setItem(SETTINGS_STATES, JSON.stringify(states))
            }
        }, sQuery = statesQuery.get() || {
                navHorizontal: that.navHorizontal,
                fixedHeader: that.fixedHeader,
                themeActive: that.themeActive
            };
        if (sQuery && (this.navHorizontal = sQuery.navHorizontal, this.fixedHeader = sQuery.fixedHeader, this.themeActive = sQuery.themeActive), this.siteSettings.find("#navHorizontal").on("change", onNavHorizontal), this.siteSettings.find("#fixedHeader").on("change", onFixedHeader), this.siteSettings.find("#themeColor li").on("click touchstart", onThemeChange), this.app.addClass(this.themeActive)) {
            var elems = ["body", ".main-container", ".nav-wrap", ".content-container"];
            elems.forEach(function (el) {
                $(el).addClass("nav-expand")
            })
        }
        this.navHorizontal && (this.siteSettings.find("#navHorizontal")[0].checked = !0, this.mainContainer.addClass("nav-horizontal")), this.fixedHeader && (this.siteSettings.find("#fixedHeader")[0].checked = !0, this.siteHead.addClass("fixedHeader"), this.contentContainer.addClass("fixedHeader")), this.navOffCanvas && this.navWrap.addClass("nav-offcanvas")
    }, MateriaApp.prototype.initRipple = function () {
        Waves.attach(".btn"), Waves.init({
            duration: 900,
            delay: 300
        }), Waves.attach(".nav-wrap .site-nav .nav-list li"), Waves.attach(".md-button:not(.md-no-ink)")
    }, MateriaApp.prototype._checkMobile = function () {
        var mm = window.matchMedia("(max-width: 767px)");
        this.isMobile = mm.matches ? !0 : !1;
        var that = this;
        mm.addListener(function (m) {
            that.isMobile = m.matches ? !0 : !1
        })
    }, MateriaApp.prototype.toggleSiteNav = function () {
        this.siteHead.find(".nav-trigger").on("click touchstart", function (e) {
            var elems = ["body", ".main-container", ".nav-wrap", ".content-container"];
            elems.forEach(function (el) {
                $(el).toggleClass("nav-expand"), ".nav-wrap" == el && $(el).toggleClass("nav-offcanvas")
            }), e.preventDefault()
        })
    }, MateriaApp.prototype.toggleSettingsBox = function () {
        this.siteSettings.find(".trigger").on("click touchstart", function (e) {
            $(".site-settings").toggleClass("open"), e.preventDefault()
        })
    }, MateriaApp.prototype.initPerfectScrollbars = function () {
        var $el = $("[data-perfect-scrollbar]");
        $el.each(function () {
            var $t = $(this);
            $t.perfectScrollbar({suppressScrollX: !0}), setInterval(function () {
                $t[0].scrollHeight >= $t[0].clientHeight && $t.perfectScrollbar("update")
            }, 400)
        })
    }, MateriaApp.prototype.toggleFullScreen = function () {
        $(".site-head .fullscreen").on("click", function (e) {
            screenfull.toggle(), e.preventDefault()
        })
    }, MateriaApp.prototype.toggleFloatingSidebar = function () {
        $(".site-head .floating-sidebar > a").on("click", function (e) {
            $(this).parent().toggleClass("open"), e.preventDefault()
        })
    }, MateriaApp.prototype.initNavAccordion = function () {
        var el = $(".site-nav .nav-list"), lists = el.find("ul").parent("li"), a = lists.children("a"),
            aul = lists.find("ul a"), listsRest = el.children("li").not(lists), aRest = listsRest.children("a"),
            stopClick = 0, that = this;
        a.on("click", function (e) {
            if (!that.navHorizontal) {
                if (e.timeStamp - stopClick > 300) {
                    var self = $(this), parent = self.parent("li");
                    lists.not(parent).removeClass("open"), parent.toggleClass("open"), stopClick = e.timeStamp
                }
                e.preventDefault()
            }
            e.stopPropagation(), e.stopImmediatePropagation()
        }), aul.on("touchend", function (e) {
            that.isMobile && that.navWrap.toggleClass("nav-offcanvas"), e.stopPropagation(), e.stopImmediatePropagation()
        }), aRest.on("touchend", function () {
            that.isMobile && that.navWrap.toggleClass("nav-offcanvas")
        }), aRest.on("click", function (e) {
            if (!that.navHorizontal) {
                var parent = aRest.parent("li");
                lists.not(parent).removeClass("open")
            }
            e.stopPropagation(), e.stopImmediatePropagation()
        })
    };
    window.MateriaApp = new MateriaApp
});